* abrir base

* import Plebiscito_Salida excel file

* etiquetar y poner en base 100 variables (o recodificar)
gen part2020=PART_2020*100
gen part2017=PART_2017*100
label variable part2017 "Participación en 2017"
gen rechazo2020=P_RECHAZO*100
label variable porce_rechazo "Voto por Rechazo, 2022 (%)"
gen prural=AL*100
label variable prural "Población rural (%)"
gen pobreza=ISOC001_IndicedePobrezaCASEN*100
label variable pobreza "Población bajo línea pobreza (%)"
gen pinera2017=PIERA_2VUELTA*100
label variable pinera "Voto por Piñera, 2017 (%)"
gen kast2021=porcen_kast
label variable kast2021 "Voto por Kast, 2021 (%)"
gen educacion=EDUC_MEAN
label variable educacion "Años de escolaridad (media)"
label variable EDAD_MEAN "Edad (media)"
gen population=ITPC2019_PoblacinComunalEstim
gen lnpob= log(population)
label variable lnpob "Población en 2019 (log)"
label variable CERCANOVIOLENTA "Nearby nonviolent protests"
label variable CERCAVIOLENTA "Nearby violent protests"
label variable CERCATOTAL "Número de protestas cercanas durante el estallido social (2019)"
gen pindi=por_indi*100
label variable pindi "Población indígena (%)"
label variable pjeideología "Ideología alcalde"

* top 10 y bottom 10 municipios de apoyo al rechazo
extremes porce_rechazo COMUNA, n(10)

* descriptive graphs
* protestas
sum CERCATOTAL, det
scatter porce_rechazo CERCATOTAL, mlabel(COMUNA) msize(tiny) mlabsize(tiny) name(rechazo_protesta, replace)yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(0(20)348,labsize(tiny)) || lfitci porce_rechazo CERCATOTAL
* ideología alcalde (sin independendientes)
sum pjeideología, det
twoway (scatter porce_rechazo pjeideología if pjeideología!=2.66, mlabel(COMUNA) msize(tiny) mlabsize(tiny) yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(-2.667 (0.5)2.66 ,labsize(tiny))) (scatter porce_rechazo pjeideología if pjeideología==2.66,mlabel(COMUNA) msize(tiny) mlabsize(tiny) yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(-2.667 (0.5)2.66 ,labsize(tiny)) mlabposition(9) mlabcolor(navy) mcolor(navy)), xtitle(Ideología alcalde (sin independendientes)) legend(off) name(rechazo_ideo, replace) || lfitci porce_rechazo pjeideología
sum pjeideología_prom, det
twoway (scatter porce_rechazo pjeideología_prom if pjeideología_prom!=2.66, mlabel(COMUNA) msize(tiny) mlabsize(tiny) yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(-2.667 (0.5)2.66 ,labsize(tiny))) (scatter porce_rechazo pjeideología_prom if pjeideología_prom==2.66,mlabel(COMUNA) msize(tiny) mlabsize(tiny) yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(-2.667 (0.5)2.66 ,labsize(tiny)) mlabposition(9) mlabcolor(navy) mcolor(navy)), legend(off) name(rechazo_ideo_prom, replace) || lfitci porce_rechazo pjeideología_prom xtitle(Ideología alcalde (con independendientes))
grc1leg2 rechazo_ideo rechazo_ideo_prom
* voto Kast
* correlación con rechazo 2020 y Piñera 2017
pwcorr kast2021 rechazo2020, sig
pwcorr kast2021 pinera2017, sig
sum kast2021, det
scatter porce_rechazo kast2021, mlabel(COMUNA) msize(tiny) mlabsize(tiny) name(rechazo_kast, replace)yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(.24(0.1).95,labsize(tiny)) || lfitci porce_rechazo kast2021
* edad
sum EDAD_MEAN, det
scatter porce_rechazo EDAD_MEAN, mlabel(COMUNA) msize(tiny) mlabsize(tiny) name(rechazo_edad, replace)yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(29(1)43,labsize(tiny)) || lfitci porce_rechazo EDAD_MEAN
* población (log)
sum lnpob, det
scatter porce_rechazo lnpob, mlabel(COMUNA) msize(tiny) mlabsize(tiny) name(rechazo_poblacion, replace)yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(5.3(1)13.3,labsize(tiny)) || lfitci porce_rechazo lnpob
* pobreza
sum pobreza, det
scatter porce_rechazo pobreza, mlabel(COMUNA) msize(tiny) mlabsize(tiny) name(rechazo_pobreza, replace)yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(.13(5)41.6,labsize(tiny)) || lfitci porce_rechazo pobreza
* educacion
sum educacion, det
scatter porce_rechazo educacion, mlabel(COMUNA) msize(tiny) mlabsize(tiny) name(rechazo_educacion, replace)yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(5.9(0.5)13.6,labsize(tiny)) || lfitci porce_rechazo educacion
* ruralidad
twoway (scatter porce_rechazo prural if prural!=100, mlabel(COMUNA) msize(tiny) mlabsize(tiny) yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(0(5)100,labsize(tiny))) (scatter porce_rechazo prural if prural==100,mlabel(COMUNA) msize(tiny) mlabsize(tiny) yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(0(5)100,labsize(tiny)) mlabposition(9) mlabcolor(navy) mcolor(navy)), xtitle(Población rural (%)) legend(off) name(rechazo_rural, replace) || lfitci porce_rechazo prural
* indigena
sum pindi, det
scatter porce_rechazo pindi, mlabel(COMUNA) msize(tiny) mlabsize(tiny) name(rechazo_ruralidad, replace)yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(2.1(5)87.8,labsize(vsmall)) || lfitci porce_rechazo pindi

* estadísticas descriptivas variables 
sum porce_rechazo c.CERCATOTAL c.pjeideología pjeideología_prom c.kast2021 c.EDAD_MEAN c.lnpob c.pobreza c.educacion c.prural c.pindi

* regressions (usando aweights)
* sin imputar ideología a independientes fuera de lista
reg porce_rechazo c.CERCATOTAL c.pjeideología c.kast2021 c.EDAD_MEAN c.lnpob c.pobreza c.educacion c.prural c.pindi [aw=Cant_votos], vce(rob)
outreg2 using resultados1.xls, replace ctitle(OLS (sin independientes)) alpha(0.01, 0.05, 0.1)
* imputando promedio de ideología a independientes fuera de lista
reg porce_rechazo c.CERCATOTAL c.pjeideología_prom c.kast2021 c.EDAD_MEAN c.lnpob c.pobreza c.educacion c.prural c.pindi [aw=Cant_votos], vce(rob)
outreg2 using resultados1.xls, append ctitle(OLS (con independientes)) alpha(0.01, 0.05, 0.1)
* GLM
* DV: turnout 2020 (nonviolent)
* sin alcaldes independientes
glm porce_rechazo c.CERCATOTAL c.pjeideología c.kast2021 c.EDAD_MEAN c.lnpob c.pobreza c.educacion c.prural c.pindi [aw=Cant_votos], fam(bin) link(logit) vce(robust)
outreg2 using resultados1.xls, append ctitle(GLM (sin independientes)) alpha(0.01, 0.05, 0.1)
* con alcaldes independientes
glm porce_rechazo c.CERCATOTAL c.pjeideología_prom c.kast2021 c.EDAD_MEAN c.lnpob c.pobreza c.educacion c.prural c.pindi [aw=Cant_votos], fam(bin) link(logit) vce(robust)
outreg2 using resultados1.xls, append ctitle(GLM (con independientes)) alpha(0.01, 0.05, 0.1)


* Valores predichos
* Usando OLS de todas las comunas
* por valores de protestas
reg porce_rechazo c.CERCATOTAL c.pjeideología_prom c.kast2021 c.EDAD_MEAN c.lnpob c.pobreza c.educacion c.prural c.pindi [aw=Cant_votos], vce(rob)
margins, at(CERCATOTAL=(0(20)348)) atmeans post 
marginsplot, name(pred1, replace) yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(0(20)348,labsize(tiny)) ytitle(Rechazo (%)) legend() title("") xtitle("Número de protestas cercanas durante el estallido social (2019)", size(vsmall))
* por valores de Kast
reg porce_rechazo c.CERCATOTAL c.pjeideología_prom c.kast2021 c.EDAD_MEAN c.lnpob c.pobreza c.educacion c.prural c.pindi [aw=Cant_votos], vce(rob)
margins, at(kast2021 =(.2422008(0.05).9430894)) atmeans post 
marginsplot, name(pred2, replace) yscale(range(.4177449  .946957)) ylabel(.24(0.1).95, labsize(vsmall)) xlabel(.24(0.05).94,labsize(vsmall))  legend() title("") ytitle(Rechazo (%))
* por valores de edad 
reg porce_rechazo c.CERCATOTAL c.pjeideología_prom c.kast2021 c.EDAD_MEAN c.lnpob c.pobreza c.educacion c.prural c.pindi [aw=Cant_votos], vce(rob)
margins, at(EDAD_MEAN=(28.79165(1)43.33998)) atmeans post 
marginsplot, name(pred3, replace) yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(29(1)43,labsize(vsmall)) legend() title("") ytitle("")
* por valores de poblacion
reg porce_rechazo c.CERCATOTAL c.pjeideología_prom c.kast2021 c.EDAD_MEAN c.lnpob c.pobreza c.educacion c.prural c.pindi [aw=Cant_votos], vce(rob)
margins, at(lnpob=(5.361292(.5)13.35307)) atmeans post 
marginsplot, name(pred4, replace) yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(5.361292(.5)13.35307,labsize(tiny)) legend() title("") ytitle("")
* por valores de educacion 
reg porce_rechazo c.CERCATOTAL c.pjeideología_prom c.kast2021 c.EDAD_MEAN c.lnpob c.pobreza c.educacion c.prural c.pindi [aw=Cant_votos], vce(rob)
margins, at(educacion=(5.932108 (0.5)13.59402)) atmeans post 
marginsplot, name(pred5, replace) yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(5.9(0.5)13.6,labsize(tiny)) legend() title("") ytitle(Rechazo (%))
* por valores de indigena
reg porce_rechazo c.CERCATOTAL c.pjeideología_prom c.kast2021 c.EDAD_MEAN c.lnpob c.pobreza c.educacion c.prural c.pindi [aw=Cant_votos], vce(rob)
margins, at(pindi=(2.1(5)87.8)) atmeans post 
marginsplot, name(pred6, replace) yscale(range(.4177449  .946957)) ylabel(.42(0.1).95, labsize(vsmall)) xlabel(2.1(5)87.8,labsize(tiny)) legend() title("") ytitle("")
* figura de efectos positivos
graph pred2
* figura de efectos negativos
grc1leg2 pred1 pred3 pred4 pred5 pred6, ycommon